import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import autoprefixer from 'autoprefixer'
import tailwindcss from '@tailwindcss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueDevTools(),
    tailwindcss(),
    AutoImport({
      imports: ['vue', 'vue-router'], // 自动导入 vue 和 vue-router 的 API
      dts: 'src/types/auto-imports.d.ts',   // 生成类型声明文件（支持 TS）
      eslintrc: {
        enabled: false, // 若使用 ESLint，可自动生成规则避免未定义变量报错
        filepath: './.eslintrc-auto-import.json',
        globalsPropValue: true,
      },
      resolvers: [
        IconsResolver({
          prefix: 'Icon', // 图标组件前缀，例如 IconMdiHome
        }),
      ],
    }),
    Icons({
      compiler: 'vue3',
      autoInstall: true, // 自动安装图标集
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
  },
  server: {
    host: '0.0.0.0', // 监听所有网络接口，允许局域网访问
    port: 5173, // 指定端口号（可选，默认是 5173）
    strictPort: false, // 如果端口被占用，尝试下一个可用端口
  },
  css: {
    postcss: {
      plugins: [

        autoprefixer({
          // 自动添加浏览器私有前缀
          overrideBrowserslist: [
            '> 1%',
            'last 2 versions',
            'not dead',
          ],
        }),
      ],
    },
  },
})
